The Internet provides a platform for rapid and timely information exchange among a disparate array of clients and servers. Transmission control protocol (TCP) and Internet protocol (IP) are well-known separately designed and closely tied protocols that define rules of communication between end hosts, and are presently the most commonly used protocol suite for transferring data via the Internet. The combination of TCP/IP dominates modern communications over various networks, from a wired backbone to a heterogeneous network, due primarily to its simplicity and reliability. TCP has become the de facto standard used in most applications ranging from interactive sessions, such as, for example, hypertext transfer protocol (HTTP), to bulk data transfer, such as, for example, file transfer protocol (FTP). User Datagram Protocol (UDP) is used by many other applications, particularly Internet applications, requiring timely delivery of data. However, due at least in part to the lack of implicit acknowledgments, UDP cannot guarantee reliability, ordering or integrity of the data. Most multimedia streaming applications, as well as Voice over IP (VoIP), use the UDP protocol.
TCP was originally designed primarily for wired networks. In a wired network, random bit error rate (BER), a characteristic usually more pronounced in a wireless network environment, is negligible, and congestion is a main cause of packet loss. Emerging wireless applications, especially high-speed multimedia services and the advent of wireless IP communications carried by the Internet, call for calibration and sophisticated enhancement or modifications of this protocol suite for improved performance.
Based on the assumption that packet losses are indicative of network congestion, an additive increase/multiplicative decrease (AIMD) algorithm, which is a feedback control mechanism used in TCP congestion avoidance, reaches a steady state which reflects the protocol's efficiency in terms of throughput and link utilization. However, this assumption does not necessarily hold true when the end-to-end path also includes wireless links. Factors including, for example, high BER, unstable channel characteristics, and user mobility, may all contribute to packet losses.
Many studies have shown that an unmodified standard TCP performs poorly in a wireless communications environment due, at least in part, to its inability to distinguish packet losses caused by network congestion from those losses attributed to transmission errors. This phenomenon gets exacerbated for very lossy wireless connections such as, for example, satellite. Numerous modifications to TCP have been proposed to resolve, or at least alleviate, some of the issues with its original design. Unfortunately, however, conventional methodologies for addressing these issues have been, thus far, ineffective.
To be effective, modifications to TCP should to be applied on both ends of the communications (e.g., on the client side and on the server side). In practice, however, it is very rare to control both endpoints. As such, the concept of Performance Enhancing Proxies (PEPs) has been introduced. PEPs are introduced on both ends of a particular wireless connection and implement numerous alterations to TCP to improve the performance over a wireless segment, without requiring modifications to the client applications or servers. However, PEPs have at least two major limitations: first, they can only optimize one wireless connection at a time; and second, they break the end-to-end semantics of ingress and egress TCP connections. UDP complements TCP in terms of reliability. However, UDP does not detect congestion in the networks, nor does it retransmit lost packets. As a consequence, UDP performance is further degraded compared to TCP when used with lossy wireless networks. Furthermore, PEPs fail to optimize UDP because, unlike TCP, UDP does not establish a connection before sending application datagrams. Consequently, conventional means of addressing such wireless data communications problems have been insufficient.